<?php
if (!defined('SECURE') || SECURE != TRUE) header('Location: '.$_SERVER['SERVER_NAME']);
/**********
|	LOAD CONTROLLER
|	La función se encarga de cargar los controladores.
|	Si hay problemas devuelve FALSE
|	Unknown (19/07/2011)
**********/
function load_controller($name) {
	$name = strtolower($name);

	if(!file_exists(CONTROLLERS.$name.C_EXT))	
		return FALSE;

	require_once(CONTROLLERS.$name.C_EXT);
	

	if(!class_exists($name))	
		return FALSE;

	return new $name;
}

/**********
|	LOAD VIEW
|	La función se encarga de cargar las views
|	Unknown (19/07/2011)
**********/
function load_view($name, $params = array()) {
	$name = strtolower($name);
	// Se pueden pasar parametros a la View
	if(is_array($params)){
		foreach($params as $opt => $value) {
			$param[$opt] = $value;
		}
	}
	require_once(VIEWS.$name.V_EXT);
}

/**********
|	LOAD LIBRARY
|	La función se encarga de cargar las librerias
|	Si hay problemas explota xD
|
|	Funciona como patrón REGISTRY de forma que no 
|	se cargue muchas veces la misma librería.
|
|	Unknown (19/07/2011)
**********/
function load_library($name) {
	static $libs;
	$name = strtolower($name);

	// Si ya la cargue, simplemente la devuelvo
	if(isset($libs[$name]))
		return $libs[$name];

	if(!file_exists(LIBRARIES.$name.L_EXT))	
		exit('La librería no existe');

	require_once(LIBRARIES.$name.L_EXT);
	

	if(!class_exists($name))	
		exit('La librería tiene mal formato');

	$libs[$name] = new $name;
	return $libs[$name];
}

?>
